package test.java.InterfaceTest.convolution;

import P.image.Strech;
import org.junit.jupiter.api.Test;
import S_logger.Log;
/*
 * 个人著作权人, 作者 罗瑶光, 浏阳
 * yaoguangluo@outlook.com, 313699483@qq.com, 2080315360@qq.com,
 * (lyg.tin@gmail.com2018年回国后因国内G网屏蔽不再使用）
 * 15116110525-浏阳德塔软件开发有限公司-创始人-法人-总经理-永久非盈利-
 * 430181198505250014, G24402609, EB0581342
 * 204925063, 389418686, F2406501, 0626136
 * 湖南省 浏阳市 集里街道 神仙坳社区 大塘冲一段路 208号 阳光家园别墅小区 第十栋别墅 第三层
 * */
/*
 * 这是一个 用于数值特征在指定区间中的比例拉扯提高特征鲜艳度，如图片渲染 测试main函数demo
 * 的test版本，在导入了api之后进行系统集成，然后用下面的对应的函数中源码逻辑进行复制粘贴到
 * 工程中，直接运行，即可出结果，源码的逻辑按照输入准备计算的参数，然后执行，然后获取输出需
 * 要的结果，可以用断点来查看数据，也可以用println来显示输出，方便集成，对程序员友好。系统
 * 需要jdk1.8 以上的java环境，本人会把测试的输入输出都注释在这个文件里。及其傻瓜化的流程，
 * 方便商业化落地。
 * --罗瑶光
 * */
class StrechTest {
	public static void main(String[] argv) {
		StrechTest strechTest = new StrechTest();
		strechTest.testP();
	}

	@Test
	void p() {
	}

	@Test
	void testP() {
		//init
		int[][] input = new int[16][16];
		for (int i = 0; i < 16; i++) {
			for (int j = 0; j < 16; j++) {
				double temp = Math.random() * 10000;
				int tempInt = (int) temp;
				input[i][j] = tempInt % 255;
			}
		}
		for (int i = 0; i < 16; i++) {
			for (int j = 0; j < 16; j++) {
				S_logger.Log.logger.info("-" + input[i][j]);
			}
			S_logger.Log.logger.info("" + "");
		}
		S_logger.Log.logger.info("" + "------------");
		//exe Strech，商业价值用于数值特征在指定区间中的比例拉扯提高特征鲜艳度，如图片渲染。
		// refer思想：ComputerVision 绿皮书
		int[][] output = Strech.P(input, 0.05, 0.95);
		//output
		for (int i = 0; i < 16; i++) {
			for (int j = 0; j < 16; j++) {
				S_logger.Log.logger.info("-" + output[i][j]);
			}
			S_logger.Log.logger.info("" + "");
		}
	}
}
//输入
//Connected to the target VM, address: '127.0.0.1:55695', transport: 'socket'
//    -76-227-156-164-132-34-21-176-142-195-221-53-104-41-87-43
//    -208-174-149-131-186-29-114-202-225-50-94-155-32-228-176-193
//    -213-12-177-208-180-238-212-88-140-158-202-21-218-65-121-104
//    -40-131-248-197-247-47-7-211-2-89-3-180-232-41-27-105
//    -42-150-127-248-43-58-26-205-215-95-169-188-38-193-178-72
//    -225-85-69-85-49-148-153-236-55-159-40-75-173-35-20-85
//    -157-49-117-163-49-239-20-66-26-185-149-23-21-233-174-66
//    -49-219-29-173-144-35-170-134-103-56-238-163-1-221-251-179
//    -152-251-159-37-126-220-105-176-47-184-105-87-143-163-215-71
//    -232-248-130-183-140-92-180-170-138-13-127-82-252-211-74-15
//    -154-212-151-254-10-2-16-181-36-239-187-122-131-185-107-208
//    -53-35-212-39-126-53-20-137-103-121-187-30-43-246-75-112
//    -28-118-76-65-47-148-55-138-233-220-125-43-239-180-99-153
//    -114-15-36-223-75-32-67-200-122-18-183-102-243-27-100-45
//    -127-3-162-47-201-227-150-68-167-121-33-208-88-134-55-105
//    -221-219-35-155-133-175-151-225-241-106-107-17-209-244-125-253
//   输出 ------------
//    -67-239-158-167-130-19-4-181-142-202-232-40-99-27-79-29
//    -217-178-150-129-192-13-110-210-236-37-87-157-17-240-181-200
//    -223-0-182-217-185-251-221-80-140-160-210-4-228-54-118-99
//    -26-129-255-204-255-34-0-220-0-81-0-185-244-27-11-100
//    -28-151-125-255-29-46-10-214-225-88-173-194-23-200-183-62
//    -236-77-59-77-36-149-154-249-43-161-26-66-177-20-3-77
//    -159-36-113-166-36-252-3-55-10-191-150-6-4-245-178-55
//    -36-229-13-177-144-20-174-133-97-44-251-166-0-232-255-184
//    -153-255-161-22-124-231-100-181-34-190-100-79-143-166-225-61
//    -244-255-128-188-140-85-185-174-137-0-125-73-255-220-64-0
//    -155-221-152-255-0-0-0-186-21-252-193-119-129-191-102-217
//    -40-20-221-25-124-40-3-136-97-118-193-14-29-255-66-108
//    -12-114-67-54-34-149-43-137-245-231-122-29-252-185-93-154
//    -110-0-21-234-66-17-56-208-119-1-188-96-255-11-94-31
//    -125-0-165-34-209-239-151-58-170-118-18-217-80-133-43-100
//    -232-229-20-157-132-179-152-236-255-101-102-0-218-255-122-255
//    Disconnected from the target VM, address: '127.0.0.1:55695', transport: 'socket'
//
//    Process finished with exit code 0